package com.doujiao.auth.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.doujiao.core.auth.dto.AdminGroupPermissionCreateDTO;
import com.doujiao.core.auth.dto.AdminGroupPermissionQueryDTO;
import com.doujiao.core.auth.entity.AdminGroupPermission;
import com.doujiao.core.auth.vo.AdminGroupPermissionPageVO;

import java.util.List;

/**
 * 管理员组权限服务接口
 *
 * @author wuyunbin
 * @since 2025-05-24
 */
public interface AdminGroupPermissionService extends IService<AdminGroupPermission> {

    /**
     * 分页查询管理员组权限
     *
     * @param queryDTO 查询参数
     * @return 分页结果
     */
    AdminGroupPermissionPageVO page(AdminGroupPermissionQueryDTO queryDTO);

    /**
     * 批量创建管理员组权限
     *
     * @param createDTO 创建参数
     * @return 创建的权限列表
     */
    List<AdminGroupPermission> batchCreate(AdminGroupPermissionCreateDTO createDTO);

    /**
     * 删除管理员组权限
     *
     * @param id 权限ID
     * @return 是否删除成功
     */
    boolean delete(Long id);

    /**
     * 获取管理员组的所有权限标识
     *
     * @param groupId 管理员组ID
     * @return 权限标识列表
     */
    List<String> getPermissionsByGroupId(Long groupId);

    /**
     * 删除管理员组的所有权限
     *
     * @param groupId 管理员组ID
     * @return 是否删除成功
     */
    boolean deleteByGroupId(Long groupId);
}
